package com.abaaba.project2.controller.wxcontroller;
import com.abaaba.project2.bean.vo.BaseRespVo;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

@RestController
@RequestMapping("/wx/storage")
public class WxStorageController {
    @Autowired
    WxAuthController wxAuthController;

    @RequestMapping("/upload")
    public BaseRespVo fileUpload2(@RequestParam("file") MultipartFile file) throws IOException {
        Session session = wxAuthController.subject.getSession();

        // 图片本地存储路径
        String localPicPath = "D://project2/" + System.currentTimeMillis()+file.getOriginalFilename();
        // 图片数据库存储 url
        String filePath="http://localhost:8083/wx/storage/fetch/" + System.currentTimeMillis()+file.getOriginalFilename();

        // 如果 session 中的 filepath 为 null，说明是第一次上传图片
        // 如果 session 中的 filepath 不为 null，说明不是第一次上传，此时要在 url 后加两个空格
        String space = "  ";
        if (session.getAttribute("filePath") != null) {
            space = session.getAttribute("filePath") + space;
            filePath = space + filePath;
        }

        // 将当前数据库中的存储路径存入 session ，key 为 filePath
        session.setAttribute("filePath", filePath);

        File newFile=new File(localPicPath);
        //通过 MultipartFile 的方法直接写文件
        file.transferTo(newFile);
        return BaseRespVo.ok(filePath);

    }
}
